package classes;

import interfaces.ICanal;
import interfaces.ICapteur;
import interfaces.IScheduler;
import interfaces.IStrategy;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.Timer;


public class Application {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		IScheduler scheduler = new SchedulerImpl(10);
		final ICapteur capteur = new CapteurImpl();
		
		//creation strategie puis injection
		IStrategy strategie=new StrategyEpoque(capteur);
		capteur.setStrategie(strategie);

		ICanal canal1=new CanalImpl(scheduler, new AfficheurImpl(), capteur);
		ICanal canal2=new CanalImpl(scheduler, new AfficheurImpl(), capteur);
		ICanal canal3=new CanalImpl(scheduler, new AfficheurImpl(), capteur);
		ICanal canal4=new CanalImpl(scheduler, new AfficheurImpl(), capteur);
		
		
		capteur.add(canal1);
		capteur.add(canal2);
		capteur.add(canal3);
		capteur.add(canal4);
		
		Timer timer=new Timer(1000, new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				capteur.tick();
			}
		});
		timer.start();
		
		while(true){
			
		}

	}

}
